package com.utils;

import java.math.BigDecimal;
import java.util.Base64;

/**
 * @description:
 * @author: sksun2
 * @create: 2023-08-31
 */
public class NumberUtils {

    /**
     *
     * @param scale  小数位
     * @param encodedValue Base64编码后的值
     * @return
     */
    public static BigDecimal getNumber(int scale, String encodedValue){

        // 使用Base64解码
        byte[] decodedBytes = Base64.getDecoder().decode(encodedValue);

        // 转换为数值类型
        int numericValue = getNumericValue(decodedBytes);

        return new BigDecimal(numericValue).divide(new BigDecimal(scale + 1 ));
    }

    private static int getNumericValue(byte[] bytes) {
        int value = 0;
        for (byte b : bytes) {
            value = (value << 8) | (b & 0xFF);
        }
        return value;
    }
}
